草庐IT

C++ 异常开销

全部标签

c# - 有趣的 Lucene.net 异常

根据this或this,我通过多个线程使用相同的索引搜索器。但是当我从FsDirectory切换到MMapDirectory时,我遇到了有趣的异常。这个工作正常:staticvoidMain(string[]args){DirectoryInfodirectoryInfo=newDirectoryInfo(@"C:\Users\Tams\Desktop\new\");vardirectory=FSDirectory.Open(directoryInfo);varindexSearcher=newIndexSearcher(directory);constinttimes=100;con

c# - 异常 - 堆栈跟踪行号和消息不匹配

当出现问题时,我们会发现一些代码出现奇怪的问题-在某些情况下,异常消息和堆栈跟踪不匹配。我们有许多具有类似结构的消息处理程序,如下所示:publicvoidHandle(AddTelephoneNumbermessage){vardirectory=ClientService.Directory(Context).Result;varclient=ClientService.ClientLookup(message.ClientNumber,Context).Result;if(!client.Item1){//ClientdoesnotexistthrownewException("

c# - 异常类可见性?

我已经使用C#大约五年了,直到现在我才对自定义异常的类可见性感到震惊。像这样编写内部甚至私有(private)嵌套异常是完全合法的:internalclassWhyDoThis:Exception{}publicclassFoo{privateclassWhyWhyWhy:Exception{}}因此,当您打算在DLL中抛出这些异常时,只有(少数)人在进行正常的(非pokemon)异常处理时,他们的应用才会崩溃。所以我的问题是,这种模式的目的是什么?或者为什么这甚至是合法的? 最佳答案 一个简单的答案是:它和任何错误代码一样合法。我

c# - 字典 Getter 中的参数异常

我遇到了一个奇怪的情况,即以特定方式在C#字典上使用getter会产生参数异常,即使这应该是neverhappen.这个问题似乎只发生在我的电脑上。实际上,我已经找到了解决我原来问题的替代方案。但是我真的很想了解为什么原始解决方案不起作用。我有一个用于Solidworks插件的字典。它跟踪打开的文档及其事件处理程序。它是这样定义的:privateDictionary_openDocs=newDictionary();Solidworks有method检索事件文档。当我尝试使用它来检索事件文档的事件处理程序时,如下所示:_openDocs[SwApp.ActiveDoc]我得到这个Arg

c# - 包装和重新抛出异常会影响性能吗?

我在我的应用程序中遵循这种处理异常的方式。但是我的领导说我做错了。我只是包装并重新抛出相同的异常,这会影响性能。我的方法有什么问题?有没有人对我如何在这里记录和处理异常有任何建议?publicclassBusinessRepository:IBusinessRepo{publicListGetEmployees(){try{//dosomeDBoperations}catch(SQLExceptionsqlex){Logger.Log("Exceptiondetailwithfullstacktrace");thrownewDALException(sqlex,"Errorindata

c# - 包装一个 IEnumerable 并捕获异常

我有一堆类可以Process()对象,并返回它们自己的对象:publicoverrideIEnumerableProcess(IEnumerableincoming){...}我想编写一个处理器类来包装这些处理​​器之一,并记录包装的Process()方法可能抛出的任何未捕获的异常。我的第一个想法是这样的:publicoverrideIEnumerableProcess(IEnumerableincoming){try{foreach(varxinthis.processor.Process(incoming)){yieldreturnx;}}catch(Exceptione){Wri

c# - 如果任何参数为空,为什么 Enumerable.SequenceEqual 会抛出异常?

我正在尝试使用Enumerable.SequenceEqual(x,y)因为我希望它基于Object.Equals(x,y)方法,如果x或y为null,则返回false,如果两者均为null(对于null情况),则返回true。但是,如果任何参数为null引用,Enumerable.SequenceEqual(x,y)将抛出异常,如果给它两个null,则不会返回true。在我的代码中,我经常检查集合相等性,所以我创建了一个方法来模拟序列的Object.Equals行为,但我只是想知道这种默认行为背后的逻辑是什么,并且可能有一个现有方法没有空值异常? 最佳答案

C# 捕获 ThreadPool 上发生的异常

我正在调查我的应用程序中由Win32异常引起的一些崩溃,我已经缩小了它必须发生在处理EventLog.EntryWrittenEventHandler事件处理程序的线程池中的范围我的应用程序。我是这样设置的://CreatetheeventlogmonitoreventLog.Log="Application";eventLog.EnableRaisingEvents=true;eventLog.EntryWritten+=newEntryWrittenEventHandler(EventLogMonitor);EventLogMonitor是我的事件的处理程序。我想知道是否有人知道我

c# - 使用 FileIO.ReadTextAsync 从文件中读取文本时出现异常

尝试使用读取locl文本文件时出现以下异常vartext=awaitFileIO.ReadTextAsync(file);Thehandlewithwhichthisoplockwasassociatedhasbeenclosed.Theoplockisnowbroken.(ExceptionfromHRESULT:0x80070323)这发生在其中一个回归单元测试中,它也会不时发生在应用程序中。应用是XAML+C#知道是什么原因造成的吗?! 最佳答案 我遇到了同样的问题,是由并发线程引起的。我试图同时在两个地方访问同一个文件,但没

c# - 使用 LINQ 将三个列表连接成一个会引发异常

好吧,我一定是在做一些愚蠢的事情,但这不应该起作用吗?我有以下三个列表:varcommonViews=(fromvincontext.TPM_VIEWSwherev.VIEWIDvarownedViews=(fromvincontext.TPM_VIEWSwherev.OWNERID==userId&&v.VIEWID>0selectv);//IQueryablevarsharedViews=(fromvincontext.TPM_USER.Include("TPM_VIEWS2")wherev.USERID==userIdselectv).First().TPM_VIEWS2;//E